package com.lt.tccdemo.service;

import com.lt.tccdemo.db108.dao.UserMapper;
import com.lt.tccdemo.db108.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.*;

/**
 * @author lucine
 * @version 1.0 2021/10/7 15:47
 */
@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;


    public List<User> getAllUsers(){
        return userMapper.selectAllUsers();
    }


    public int delUser(Integer userId) {
        //本身删除就是幂等的，如果需要记录，可以先查出来，为空返回错误。
        return userMapper.deleteByPrimaryKey(userId);
    }

    public User selectById(Integer userId) {
        return userMapper.selectByPrimaryKey(userId);
    }

    public int updateUser(User user) {
        return userMapper.updateUser(user);
    }

    public void insertUser(User user) {
        //假设这里是 获取分布式锁  ，
        // 锁的key   1、可以为用户传过来的唯一标识  2、可以是后台生成唯一Token，然后传过来
        boolean lock = true;
        //如果获取了分布式锁就insert
        if(lock){
            userMapper.insert(user);
        }


    }
}
